package com.kfm.base.stream;

public class Demo03 {

    public static void main(String[] args) {
        // 前6位是地址码 + 7到14位是出生年月日 + 15到17位是顺序码(奇数分配给男性，偶数分配给女性；) + 第18位是校验码
        String id = "230407197610121100";
//        System.out.println(id);
        gender(id);
//        BirthDayUtil.isBirth(id);
//
//        Date birthday = new Date(2008, 9, 1);
//        boolean birth = BirthDayUtil.isBirth(birthday);
//
//        BirthDayUtil.isBirth(2003, 5, 1);
//        System.out.println(birth);

//        Date date = new Date(123, 8, 15);
//
//        System.out.println(BirthDayUtil.isAfterWeekDay(date));
    }


    public static void gender(String id){
        // 校验
        boolean matches = id.matches("^([1-6][1-9]|50)\\d{4}(18|19|20)\\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$");

        if (!matches){
            throw new RuntimeException("身份证号码不正确");
        }

        String substring = id.substring(14, 17);

        int i = Integer.parseInt(substring);

        System.out.println(i % 2 == 0 ? "女的" : "男的");
    }


}
